home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / share / hal / device-manager / Representation.pyc (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2007-05-11  |  3.8 KB  |  104 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. '''This file contains the Representation class.'''
  5. import gtk
  6. import Const
  7.  
  8. class Representation:
  9.     '''This class maps a device to presentation texts and icons used in
  10.     the GUI'''
  11.     
  12.     def load_and_scale_icon(self, path):
  13.         '''Helper function for loading an icon and scaling it to 16x16'''
  14.         orig = gtk.gdk.pixbuf_new_from_file(path)
  15.         icon = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 16, 16)
  16.         orig.scale(icon, 0, 0, 16, 16, 0, 0, 16 / orig.get_width(), 16 / orig.get_height(), gtk.gdk.INTERP_HYPER)
  17.         return icon
  18.  
  19.     
  20.     def __init__(self):
  21.         '''Init the class and load neccessary resources.'''
  22.         self.icons = { }
  23.         self.icons['computer'] = self.load_and_scale_icon(Const.DATADIR + '/hal-computer.png')
  24.         self.icons['bus_pci'] = self.load_and_scale_icon(Const.DATADIR + '/hal-bus-pci.png')
  25.         self.icons['bus_usb'] = self.load_and_scale_icon(Const.DATADIR + '/hal-bus-usb.png')
  26.         self.icons['abstract'] = self.load_and_scale_icon(Const.DATADIR + '/hal-abstract.png')
  27.         self.icons['harddisk'] = self.load_and_scale_icon(Const.DATADIR + '/hal-harddisk.png')
  28.         self.icons['cdrom'] = self.load_and_scale_icon(Const.DATADIR + '/hal-cdrom.png')
  29.         self.icons['floppy'] = self.load_and_scale_icon(Const.DATADIR + '/hal-floppy.png')
  30.         self.icons['unknown'] = self.load_and_scale_icon(Const.DATADIR + '/hal-unknown.png')
  31.         self.icons['mouse'] = self.load_and_scale_icon(Const.DATADIR + '/hal-cat-mouse.png')
  32.         self.icons['keyboard'] = self.load_and_scale_icon(Const.DATADIR + '/hal-cat-keyboard.png')
  33.         self.icons['cardbus'] = self.load_and_scale_icon(Const.DATADIR + '/hal-cat-cardbus.png')
  34.         self.icons['video'] = self.load_and_scale_icon(Const.DATADIR + '/hal-video.png')
  35.         self.icons['flash'] = self.load_and_scale_icon(Const.DATADIR + '/hal-flash.png')
  36.         self.icons['network'] = self.load_and_scale_icon(Const.DATADIR + '/hal-network.png')
  37.         self.icons['audio'] = self.load_and_scale_icon(Const.DATADIR + '/hal-audio.png')
  38.         self.icons['camera'] = self.load_and_scale_icon(Const.DATADIR + '/hal-camera.png')
  39.         self.icons['serial'] = self.load_and_scale_icon(Const.DATADIR + '/hal-serial-port.png')
  40.  
  41.     
  42.     def get_icon(self, device):
  43.         '''Given a Device object return an icon to display'''
  44.         icon = self.icons['abstract']
  45.         
  46.         try:
  47.             product = device.properties['info.product']
  48.         except KeyError:
  49.             product = 'Unknown'
  50.         except TypeError:
  51.             return icon
  52.  
  53.         if product == 'Computer':
  54.             return self.icons['computer']
  55.         
  56.         if device.properties.has_key('info.subsystem'):
  57.             bus = device.properties['info.subsystem']
  58.             if bus == 'usb_device':
  59.                 icon = self.icons['bus_usb']
  60.             elif bus == 'pci':
  61.                 icon = self.icons['bus_pci']
  62.             
  63.         else:
  64.             bus = 'unknown'
  65.         if not device.properties.has_key('info.category'):
  66.             return icon
  67.         
  68.         cat = device.properties['info.category']
  69.         if cat == 'input.mouse':
  70.             icon = self.icons['mouse']
  71.         elif cat == 'input.keyboard':
  72.             icon = self.icons['keyboard']
  73.         elif cat == 'pcmcia_socket':
  74.             icon = self.icons['cardbus']
  75.         elif cat == 'video4linux':
  76.             icon = self.icons['video']
  77.         elif cat == 'dvb':
  78.             icon = self.icons['video']
  79.         elif cat == 'camera':
  80.             icon = self.icons['camera']
  81.         elif cat == 'storage' or cat == 'storage.removable':
  82.             if device.properties.has_key('storage.media'):
  83.                 media = device.properties['storage.media']
  84.                 if media == 'cdrom':
  85.                     icon = self.icons['cdrom']
  86.                 elif media == 'floppy':
  87.                     icon = self.icons['floppy']
  88.                 elif media == 'disk':
  89.                     icon = self.icons['harddisk']
  90.                 elif media == 'flash':
  91.                     icon = self.icons['flash']
  92.                 
  93.             
  94.         elif cat == 'net':
  95.             icon = self.icons['network']
  96.         elif cat == 'multimedia.audio':
  97.             icon = self.icons['audio']
  98.         elif cat == 'serial':
  99.             icon = self.icons['serial']
  100.         
  101.         return icon
  102.  
  103.  
  104.